Flink API-তে তিনটি বেসিক কম্পোনেন্ট আছে: Source, Transformation, এবং Sink। এরা একসাথে ডাটা প্রসেসিং পাইপলাইন তৈরি করে। এই কম্পোনেন্টগুলোকে ব্যাখ্যা করা হলো:
১. Source
Source হলো সেই কম্পোনেন্ট, যা ডাটা স্ট্রিম বা ডাটা ফাইল থেকে ইনপুট হিসেবে ডাটা গ্রহণ করে। এটি ডাটা স্ট্রিমিং শুরু করার জন্য প্রথম ধাপ। Flink API বিভিন্ন ধরণের ইনপুট সোর্স সাপোর্ট করে, যেমন:
- Kafka: ডাটা স্ট্রিমের জন্য ব্যবহৃত হয়।
- File System: ফাইল সিস্টেম থেকে ডাটা পড়া যায়।
- Socket: সোজাসুজি সকেট থেকে ডাটা গ্রহণ করা যায়।
- Database: বিভিন্ন ডাটাবেস সোর্স থেকে ডাটা ফেচ করা সম্ভব।
Example:
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<String> stream = env.readTextFile("path/to/your/file.txt");
২. Transformation
Transformation হলো সেই প্রক্রিয়া, যা ইনপুট সোর্স থেকে পাওয়া ডাটাকে বিভিন্ন ভাবে প্রক্রিয়াজাত করে আউটপুট হিসেবে তৈরি করে। Transformation-এর মাধ্যমে ডাটা ফিল্টার করা, ম্যাপ করা, গ্রুপ করা বা যোগ করা যায়। Flink API বেশ কিছু Transformation প্রদান করে, যেমন:
- Map: প্রতিটি এলিমেন্টে পরিবর্তন আনা হয়।
- Filter: নির্দিষ্ট শর্তের উপর ভিত্তি করে ডাটা ফিল্টার করা হয়।
- KeyBy: ডাটাকে কী এর ভিত্তিতে গ্রুপ করা হয়।
- Reduce: গ্রুপ করা ডাটার উপর অ্যাগ্রিগেট অপারেশন (যেমন, যোগ, গড়) করা হয়।
Example:
DataStream<String> stream = env.readTextFile("path/to/your/file.txt");
DataStream<String> filteredStream = stream
.filter(line -> line.contains("Flink"))
.map(line -> line.toUpperCase());
৩. Sink
Sink হলো Flink পাইপলাইনের শেষ কম্পোনেন্ট, যা প্রসেস করা ডাটাকে কোথাও স্টোর বা প্রকাশ করে। Sink কম্পোনেন্ট ডাটাকে বিভিন্ন জায়গায় লেখার জন্য ব্যবহার করা হয়, যেমন:
- File System: ডাটা ফাইল আকারে সেভ করা যায়।
- Kafka: প্রসেস করা ডাটাকে Kafka টপিকে পাঠানো হয়।
- Database: বিভিন্ন ডাটাবেসে ডাটা ইনসার্ট করা হয়।
- Console: ডাটা আউটপুট হিসেবে কনসোলে প্রিন্ট করা হয়।
Example:
filteredStream.writeAsText("path/to/output/file.txt");
সংক্ষেপে
Flink API-তে ডাটা স্ট্রিম প্রসেসিং সাধারণত তিনটি ধাপের মাধ্যমে হয়:
- Source থেকে ডাটা গ্রহণ করা।
- Transformation-এর মাধ্যমে ডাটাকে প্রক্রিয়াজাত করা।
- Sink-এ প্রক্রিয়াজাত ডাটা পাঠানো।
এই তিনটি কম্পোনেন্ট ব্যবহার করে একটি সম্পূর্ণ Flink ডাটা স্ট্রিমিং অ্যাপ্লিকেশন তৈরি করা হয়।
Read more